package java基础知识.继承;

/**
 * @author coderFu
 * @create 2022/3/9
 * JVM的静态和动态分派
 */
public class StaticDispatch extends CoderParent {

    public static void main(String[] args) {

        // 调用重写的方法
        // 根据具体的对象类型进行方法的调用
        // 动态分派
        CoderParent coderParent = new CoderParent();

        CoderParent coderSon = new CoderSon();

        CoderParent coderSon2 = new CoderSon2();


        coderParent.test();

        coderSon.test();

        coderSon2.test();

        coderSon.test4();

        // 调用父类重载的方法
        // 全部调用父类的重载方法，因为重载是根据静态变量类型来进行执行的
        StaticDispatch staticDispatch = new StaticDispatch();
        staticDispatch.sayHello(coderParent);
        staticDispatch.sayHello(coderSon);
        staticDispatch.sayHello(coderSon2);





    }
}
